home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
emulate
/
spectrum.lzh
/
SPECTRUM.TXT
< prev
Wrap
Text File
|
1987-04-22
|
20KB
|
384 lines
ZX-SPECTRUM Emulator V1.0
=========================
1. Einleitung
-------------
Wozu ein ZX-Spectrum Emulator? - Nun, wer diesen Computer höchstens dem Namen
nach kennt, kann obige Frage berechtigt stellen. Der mindestens ebenso
erfolgreiche Nachfolger des legendären ZX-81 ist ein 8-Bit Rechner mit 48 kB
Hauptspeicher, 256 x 192 Pixel Grafikschirm in 16 Farben (max. 2 Farben pro
Zeichenposition) und Pieps-Sound. Hoffnungslos veraltet also für einen
verwöhnten ST-User.
Wer aber, wie der Autor, seinerzeit seine ersten Programmierfrustrationen am
ZX-81 erlebte, und dann hoffnungsvoll auf den ZX-SPECTRUM wechselte, wird
dieses Gerät für immer wohlwollend im Gedächtnis behalten. Umfangreiches
Basic, nahezu unerschöpflicher Speicher (für ZX-81 Verhältnisse), üppige
Farbenpracht und sogar die Möglichkeit Töne zu erzeugen. Binnen kürzester
Zeit brach eine Softwareflut über diesen Rechner herein, weil er äußerst
einfach und komfortabel zu programmieren war. Etliche der heute am ST-Sektor
bekannten Software-Firmen haben sich damals am Spectrum erste Lorbeeren
geholt. Kurzum: Er ist es schon wert, in Erinnerung behalten zu werden, der
alte "Specci" und der Autor hofft durch die Übertragung auf den Atari ST noch
lange ab und zu einen Blick auf ihn werfen zu können. (Sollte ja schließlich
auch am TT und vielleicht auch noch am SF - so müßte der Nachfolger des TT
logischerweise heißen - noch funktionsfähig sein). Und mag sein, daß es noch
ein paar Leutchen gibt, die ähnlich empfinden... Ihnen ist dieser Emulator
gewidmet!
Der Autor möchte an dieser Stelle ganz besonders Christoph Zwerschke, dem
Verfasser des superben ZX-81-Emulators für den ST, seinen Dank aussprechen.
Erst angesichts dieser Demonstration der prinzipiellen Machbarkeit eines
ZX-Emulators war meine Motivation wieder einmal groß genug, um die schon
jahrelang angesammelten Pläne endlich in die Tat umzusetzen. Gerne gebe ich
auch zu, im Werke meines Vorbildes mich ein wenig belehrt zu haben. Nach einem
halben Jahr zäher Optimierungen und Ringen um jeden Taktzyklus, immer wieder
unterbrochen von grausamen Abstürzen und wunderlichen Effekten am Bildschirm
kann an der Eigenständigkeit dieses Programmierepos nicht gezweifelt werden.
Ein riesiges Danke auch an meine Frau (die nun endlich aufatmen kann) für ihr
Verständnis und die seelische Unterstützung in dieser Zeit.
2. Leistung der Emulation
-------------------------
Der ZX-SPECTRUM wird erstaunlich vollständig emuliert. Der einzige wirklich
erwähnenswerte Unterschied zum Original ist, daß das Hardware-Blinken
(FLASH), das der Spectrum als Video-Attribut zur Verfügung stellt, aus
Geschwindigkeitsgründen (vielleicht am TT dann) nicht unterstützt wird.
Stattdessen werden Zeichen mit dem FLASH-Attribut invers dargestellt. Am
deutlichsten zu merken beim Cursor im ZX-Basic, der am Original blinkt, beim
Emulator aber bloß invertiert ist. Damit läßt sich leben.
Ansonsten kann aber mit folgenden Features aufgewartet werden:
- Die zugrundeliegende Emulation des Z80-Prozessors unterstützt sämtliche
Opcodes, auch die Operationen mit den Indexregister-Hälften und andere
'nichtoffizielle' Z80-Befehle, und die vollständige Interruptlogik des
Z80 (Interrupt-Mode 2 wird in vielen Programmen am Spectrum verwendet).
- Die Video-Emulation stellt alle 16 Farben des Spectrum (8 Farbtöne in
jeweils zwei Intensitäten) sowohl am Farbmonitor, als auch am monochromen
Monitor (in Graustufen) dar.
- Die I/O-Operationen für Tastatur, Lautsprecher und BORDER-Farbe (Farbe
des Bildschirmrandes) werden originalgetreu umgesetzt. Ein am
Joystick-Port des ST angeschlossener Joystick wird als KEMPSTON- und
IF2-kompatibler Joystick (zwei Standards am Spectrum) emuliert.
- Das Kassetten-Handling des Spectrum wird vollständig auf Disk umgelenkt.
Bei Angabe eines Dateinamens beim Laden (LOAD "name"), und beim Speichern
(SAVE "name") ist dieser Vorgang transparent. Das Laden des erstbesten
Programmes vom Band via LOAD "", ist natürlich für Disks sinnlos - es
erscheint ein Fileselektor, aus welchem eines der vorhandenen Programme
ausgewählt werden kann.
3. Start des Emulators
----------------------
Es werden die Dateien SPECCI.PRG und SPECCI.DAT in einem beliebigen
Verzeichnis auf Diskette oder Festplatte benötigt. Nach Starten von
SPECCI.PRG erscheint ein Titelschirm während die Datei SPECCI.DAT nachgeladen
wird und die Initialisierung des Emulators durchgeführt wird. Dies dauert ein
wenig, weil umfangreiche Tabellen im Speicher angelegt werden. Es sollten
auch mindestens ca. 800 kB Speicher frei sein, also auf ST's mit 512 kB Ram
oder 1040ern mit zuvielen installierten Accessories läuft die Emulation nicht
(es erscheint eine Alertbox).
Geschrieben und getestet wurde der Emulator auf einem 1040 STF mit 1 Mb
Speicher und TOS 1.0. Er sollte aber zumindest am ST unter jeder TOS-Version
laufen und sich auch mit Festplatten vertragen. Solange bloß genug
Hauptspeicher vorhanden ist...
Falls der Emulator am Farbmonitor verwendet wird, bitte zuerst in die niedrige
Auflösung schalten (ansonsten erscheint eine Alertbox). In der monochromen
Auflösung werden die Farben durch Graustufen ersetzt.
Nach geglückter Initilisierung beginnt der normale Spectrum-Bootvorgang,
gefolgt von der Einschaltmeldung: der ST ist jetzt ein nahezu originaler
ZX-SPECTRUM. (Bis auf die Geschwindigkeit allerdings, I did my best... am TT
sollte die Emulation ca. so schnell wie das Original sein - mal sehen).
4. Bedienung des Emulators
--------------------------
Die Belegung der Spectrum-Tastatur wurde so getreu wie möglich auf den ST
Übertragen. Folgende Tabelle zeigt die Belegung der Spectrum-Tasten, die am
ST entweder nicht als solche existieren oder anders belegt sind:
ZX-SPECTRUM entspricht am ST Bemerkung
-----------------------------------------------------------------------
Symbol-Shift Alternate oder Umschalt-Taste am Spectrum
rechte Shift-Taste
Caps-Shift Linke Shift-Taste temporäre Umschaltung Groß/Klein
Z Y Weil Spectrum englische Tastatur hat,
Y Z wurde dies auch am ST beibehalten
Zwecks Komfort wurden einige oft verwendeten ZX-Shift-Kombinationen auf
eine der sonst unbenutzten ST-Tasten gelegt, wie aus nachstehender Tabelle
hervorgeht:
ST-Taste entspricht am ZX-SPECTRUM Bemerkung
-----------------------------------------------------------------------
Control Caps-Shift+Symbol-Shift EXTENDED-MODE
F1 Caps-Shift+1 EDIT
F2,CapsLock Caps-Shift+2 CAPS LOCK
F3,Tab Caps-Shift+3 TRUE VIDEO
F4,Esc Caps-Shift+4 INVERSE VIDEO
Cursor links Caps-Shift+5 Cursor nach links
Cursor runter Caps-Shift+6 Cursor nach unten
Cursor rauf Caps-Shift+7 Cursor nach oben
Cursor rechts Caps-Shift+8 Cursor nach rechts
F9 Caps-Shift+9 GRAPHICS-MODE
Delete,BS Caps-Shift+0 DELETE
F10 Caps-Shift+Space BREAK (Programmabbruch)
< Symbol-Shift+O ; (Strichpunkt)
~ Symbol-Shift+P " (Hochkomma)
ß Symbol-Shift+C ? (Fragezeichen)
ö Symbol-Shift+L = (Ist gleich)
ä Symbol-Shift+Z : (Doppelpunkt)
ü Symbol-Shift+2 @ (Absatz)
Emulator-Steuertasten:
ST-Taste Wirkung Bemerkung
-----------------------------------------------------------------------
F6 Reset Entspricht Reset-Kno